﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using ECOSYSTEM_Dominio;

namespace ECOSYSTEM_DAL
{
    public class VendedorProvDAL
    {
        SqlConnection cnn;
        public Boolean guardarVendedorProv(VendedorProv elVendedorProv) { 
            try
            {
                cnn = (SqlConnection)ConexionSQL.getInstancia().getConexion();
                cnn.Open();
                SqlCommand cmd = new SqlCommand("RegistrarVendedorProvedor",cnn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@VendedorID", SqlDbType.Int,6);
                cmd.Parameters["@VendedorID"].Direction = ParameterDirection.InputOutput;
                cmd.Parameters.Add("@Nombre", SqlDbType.NVarChar,100);
                cmd.Parameters.Add("@Email", SqlDbType.NVarChar,100);
                cmd.Parameters.Add("@TeleCelu", SqlDbType.NVarChar,15);
                cmd.Parameters.Add("@Rpm", SqlDbType.NVarChar,15);
                cmd.Parameters.Add("@Estado", SqlDbType.Int,2);
                cmd.Parameters.Add("@EmpresaProvedorID", SqlDbType.Int);
                cmd.Parameters["@VendedorID"].Value = elVendedorProv.VendedorProvID;
                cmd.Parameters["@Nombre"].Value = elVendedorProv.NomVendProv;
                cmd.Parameters["@Email"].Value = elVendedorProv.EmaiVendProv;
                cmd.Parameters["@TeleCelu"].Value = elVendedorProv.TelCelVendProv;
                cmd.Parameters["@Rpm"].Value = elVendedorProv.RPM;
                cmd.Parameters["@Estado"].Value = elVendedorProv.EstadoVendProv;
                cmd.Parameters["@EmpresaProvedorID"].Value = elVendedorProv.laEmpresa;
                cmd.ExecuteNonQuery();
                elVendedorProv.VendedorProvID =(Int32)(cmd.Parameters["@VendedorID"].Value);
            }
            catch (SqlException ex) { throw new Exception(ex.Message); }
            catch (Exception e) { throw new Exception(e.Message); }
            finally
            {
                if (cnn.State == ConnectionState.Open)
                {
                    cnn.Close();
                }
            }
            return true;
        }
        public Boolean ActualizarVendedorProv(VendedorProv elVendedorProv, String NomNuevo)
        {
            try
            {
                cnn = (SqlConnection)ConexionSQL.getInstancia().getConexion();
                cnn.Open();
                SqlCommand cmd = new SqlCommand("ActualizarVendedorProvedor", cnn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add("@VendedorID", SqlDbType.Int, 6);
                cmd.Parameters.Add("@Nombre", SqlDbType.NVarChar, 100);
                cmd.Parameters.Add("@NomNuevo", SqlDbType.NVarChar, 100);
                cmd.Parameters.Add("@Email", SqlDbType.NVarChar, 100);
                cmd.Parameters.Add("@TeleCelu", SqlDbType.NVarChar, 15);
                cmd.Parameters.Add("@Rpm", SqlDbType.NVarChar, 15);
                cmd.Parameters.Add("@Estado", SqlDbType.Int, 2);
                cmd.Parameters.Add("@EmpresaProvedorID", SqlDbType.Int);
                cmd.Parameters["@VendedorID"].Value = elVendedorProv.VendedorProvID;
                cmd.Parameters["@Nombre"].Value = elVendedorProv.NomVendProv;
                cmd.Parameters["@NomNuevo"].Value = NomNuevo;
                cmd.Parameters["@Email"].Value = elVendedorProv.EmaiVendProv;
                cmd.Parameters["@TeleCelu"].Value = elVendedorProv.TelCelVendProv;
                cmd.Parameters["@Rpm"].Value = elVendedorProv.RPM;
                cmd.Parameters["@Estado"].Value = elVendedorProv.EstadoVendProv;
                cmd.Parameters["@EmpresaProvedorID"].Value = elVendedorProv.laEmpresa;
                cmd.ExecuteNonQuery();
            }
            catch (SqlException ex) { throw new Exception(ex.Message); }
            catch (Exception e) { throw new Exception(e.Message); }
            finally
            {
                if (cnn.State == ConnectionState.Open)
                {
                    cnn.Close();
                }
            }
            return true;
        }
        public DataTable ObtenerVendedor() {
            DataTable lista = null;
            try
            {
                cnn = (SqlConnection)ConexionSQL.getInstancia().getConexion();
                cnn.Open();
                SqlDataAdapter da = new SqlDataAdapter("ObtenerVendedor", cnn);
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
                lista = new DataTable();
                da.Fill(lista);
            }
            catch (SqlException ex) { throw new Exception(ex.Message); }
            catch (Exception e) { throw new Exception(e.Message); }
            finally
            {
                if (cnn.State == ConnectionState.Open)
                {
                    cnn.Close();
                }
            }
            return lista;
        }
        public DataTable ObtenerVendedorAll()
        {
            DataTable lista = null;
            try
            {
                cnn = (SqlConnection)ConexionSQL.getInstancia().getConexion();
                cnn.Open();
                SqlDataAdapter da = new SqlDataAdapter("ObtenerVendedorAll", cnn);
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
                lista = new DataTable();
                da.Fill(lista);
            }
            catch (SqlException ex) { throw new Exception(ex.Message); }
            catch (Exception e) { throw new Exception(e.Message); }
            finally
            {
                if (cnn.State == ConnectionState.Open)
                {
                    cnn.Close();
                }
            }
            return lista;
        }
    }
}
